1. Field of the Invention
The present invention relates to an image processing method and apparatus for processing image data.
2. Description of the Related Art
Input devices for inputting color image data, such as scanners, video cameras, and the like, have recently become widespread. In terms of output devices, various types of color printers, using inkjet systems, dye sublimation heat transfer systems, electrophotography systems, and so on have also become widespread. Such color input and output devices each have unique color spaces. For this reason, when, for example, a color image scanned using a certain scanner is transferred as-is to a color printer and printed, the colors in the printed color image rarely match the colors in the original color image scanned using the scanner.
Processing for converting the color space of the input device to the color space of the output device (called “color processing”) is therefore necessary in order to solve the problem of color reproducibility between devices for such color images. This color processing function is built in to input and output devices in order to improve the color reproducing capabilities between such input and output devices.
This “color processing” specifically refers to all or part of a series of image processes including input γ correction, luminance/density conversion, masking, black generation, UCR, output γ correction, and so on. In a printer, this color processing is used, for example, when taking a three-color RGB (red, green, blue) digital image signal from an input device and converting it into a four-color CMYK (cyan, magenta, yellow, black) digital image signal for an output device.
The color processing can be implemented through a method that associates one color space with another. While there are many methods for performing this kind of conversion, a commonly-used method involves utilizing a Three-Dimensional LookUp Table (3D-LUT) and interpolation, as disclosed in, for example, GB-1595122 or Japanese Patent Laid-Open No. H8-237497. Various methods exist within color conversion utilizing an LUT and interpolation; however, tetrahedral interpolation as disclosed in GB-1595122 is often used in light of the required amount of data, the required amount of processing, output continuity among unit rectangular hexahedra, gray line interpolation characteristics, and the like.
However, the color conversion method that combines the 3D-LUT with interpolation increases the number of grid points per single axis of the 3D-LUT so as to improve the accuracy of the color conversion; this leads to the volume of the LUT being cubed when taken in three dimensions. Digital cameras that add color filters aside from RGB-type filters so as to improve color reproducibility have also appeared, and with such cameras, the number of grid points in the abovementioned LUD volume is taken to the fourth power, making a massive memory capacity necessary.
Meanwhile, there are output devices, such as printers, that utilize a large number of coloring materials (inks) in order to improve color reproducibility, tonality, graininess, and so on; in such cases, the LUT volume increases proportionally to the number of coloring materials.
A method that introduces a cache structure is used to solve this problem. For example, as disclosed in Japanese Patent Laid-Open No. 2004-274131, first, independent cache memories, configured of small-capacity, high-speed SRAMs, are provided at each apex, and a memory accessed through time division, shared with these cache memories, is also provided. This shared memory is configured in a low-cost memory such as a DRAM, and the entirety of the LUT is stored therein. This configuration reduces the total amount of SRAM, which is expensive, thus reducing the cost, while also preventing a drop in performance.
However, in a configuration provided with a cache, the cache hit rate changes depending on the inputted data, and thus the number of times the low-speed memory in which the stated LUT is stored (i.e. the DRAM or the like) is accessed fluctuates. As a result, the amount of time required to perform the color conversion processing also fluctuates, which means that the real-time functionality of the process cannot be guaranteed.
It is conceivable to use a print buffer, located in a later stage, to compensate for the abovementioned fluctuation in time, so as to guarantee real-time functionality; however, in this case, the increases in the size of the print buffer and the memory bandwidth, which have accompanied the recent increases in resolution and the number of print head nozzles, presents a problem.